<!DOCTYPE html>
<html lang="en">

<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Document</title>
    <script>
        // 变量 === 定义之后可以改变的量
        // var  合法变量名 ===es5
        // let  合法变量名 ===es6
        // 常量 ==== 不能改变
        // const 合法变量名
        //什么是合法变量名？？？？？？
        // 1--不能以数字开头   1a?
        // 2--英文大小写，数字， _,$      ￥1？
        // 3--class?  不能是关键字和保留字
        // 声明：
        let bb = 1;
        let x, y, z = 10;
        x = 10;
        // 2---underfined类型，变量未初始化
        // 3--null ，已经初始化，但是值位空,占位的作用
        document.write((null == undefined) + "<br/>") ///true
        document.write(x + "<br/>") ///underfined--未定义类型
        document.write(typeof (x) + "<br/>") //数据类型也是underfined


        // typeof===>检测是什么类型
        // 1-Number  数值
        // NaN   not a number

        let a = 0o70;  ///10进制中的56
        let b = 0x1f; ///10进制中的 31
        // 8进制  0
        // 16进制  0x
        document.write(typeof (a) + "<br/>");
        document.write(typeof (b) + "<br/>");



        // 4-String"" 字符串类型  Char''X
        // 单引号和双引号，均可以
        // string 对象   对象名.相关的方法  
        // toUpperCase()  ===>大写
        // toLowerCae() ====>小写


        // length ---/长度
        let str = "this is javascrpit";
        document.write(str.length + "<br/>");
        // 查找
        // indexOf(查找的字符，从什么位置查找)
        document.write(str.indexOf("i", 6) + "<br/>");///5,返回第一次找到的索引值，从0开始
        document.write(str.indexOf("i", 17) + "<br/>");///找不到，返回-1
        document.write(str.indexOf("i") + "<br/>");///第2个参数可以不写，表示从0开始找

        //if(arr[i].indexOf("a")!=-1||arr[i].indexOf("A")!=-1)



        // charAt(index)///查找固定位置的字符
        document.write(str.charAt(5) + "<br/>")
        // 分割
        // substring(index1,index2),包含index1，不包含index2
        document.write(str.substring(2, 6) + "<br/>")
        document.write(str.substring(2) + "<br/>")///返回直到末尾
        // split(str) 以某个字符分割，==>数组形式
        document.write(str.split(" ") + "<br/>")
        // slice(开始，末尾)，末尾可以忽略，
        document.write(str.slice(2, 6) + "<br/>")


        // 5-- boolean类型
        // true false
        document.write(typeof ("true") + "<br/>") ///string
        document.write(typeof (true) + "<br/>")  //布尔值



        // 6---数组对象
        // 具有相同类型，可以索引0
        // 定义
        let arr = new Array(4);
        arr[0] = "a";
        let arr1 = new Array("a", "b", "c")
        document.write(arr1[0] + "<br/>")
        // 属性
        document.write(arr.length + "<br/>")
        document.write(typeof (arr[2]) + "<br/>")
        // 方法
        // join()
        let str1 = "hello,java,scrpit"
        let arr2 = str1.split(",");
        let str3 = arr2.join("+")
        document.write(str3 + "<br/>")

        // sort，排序，升序,,,所有的方法必须加括号
        document.write(arr2.sort() + "<br/>")

        // push()   在末尾添加相关的字符
        arr2.push("aa" + "<br/>")
        document.write(arr2.sort() + "<br/>")


        // 运算符
        // ==    一般比较
        // ===   严格比较，不会进行类型转换

        // && 与
        // || 或
        //  ！= 非


        // 逻辑控制
        //分支
        // if...else
        // switch
        // 循环语句
        // for(开始，条件，结束)
        // while
        //do...while
        //for ...in    遍历数组的值
        let arr4 = Array("a", "b", "c")
        for (let i in arr4) {//表示索引值
            document.write(arr4[i] + "<br/>")
        }
        //for ...of
        for (let i of arr4) {//表示对象，数值
            document.write(i+ "<br/>")
        }









    </script>
</head>

<body>

</body>

</html>